package com.itfenghuang.day06;

import java.sql.DatabaseMetaData;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

/**
 * jdk8 的时间类
 */

public class A03_LocalDateTime {
    /**
     * 1.LocalDateTime
     *     日期时间类对象,是jdk8出来的新特性
     * 2.获取LocalDateTime对象的方法
     *      public static LocalDateTime now ()  获取当前系统时间
     *      public public static LocalDateTime of(int year,
     *                                            int month,
     *                                            int dayOfMonth,
     *                                            int hour,
     *                                            int minute,
     *                                            int second)
     *                                            根据指定的年月日,时分秒获取一个LocalDateTime对象
     * 3.常用方法
     *      获取方法：
     *      public int getYear() 获取年份
     *      public int getMonthValue() 获取月份
     *      public int getDayOfMonth() 获取一个月中的第几天
     *      public int getDayOfYear() 获取一年中的第几天
     *      public DayOfWeek getDayOfWeek() 获取星期
     *      public int getHour() 获取小时
     *      public int getMinute() 获取分钟
     *      public int getSecond() 获取秒
     *
     *     减时间的方法
     *              public LocalDateTime minusYears(long years) 减去或加上年
     *              public LocalDateTime minusMonths(long months)减去或加上月
     *              public LocalDateTime minusDays(long days) 减去或加上天
     *              public LocalDateTime minusHours(long hours) 减去或加上小时
     *              public LocalDateTime minusMinutes(long minutes) 减去或加上分钟
     *              public LocalDateTime minusSeconds(long seconds) 减去或加上秒
     *              public LocalDateTime minusWeeks(long weeks) 减去或加上周
     *
     * 4.格式化和解析方法
     *              public String format(DateTimeFormatter formatter)格式化日期
     *                      DateTimeFormatter类中的方法
     *                      public static DateTimeFormatter ofPattern(String pattern)
     *                              使用指定的模式创建格式化程序。
     *              public static LocalDateTime parse(CharSequence text) 解析日期型字符串为LocalDateTime对象
     *              public static LocalDateTime parse(CharSequence text,DateTimeFormatter formatter)
     *                               解析日期型字符串为LocalDateTime对象
     *
     *  5.转换方法
     *              public LocaDate toLocaDate()获取这个日期时间的LocalDate部分。
     *              public LocalTime toLocalTime()获取此日期时间的LocalTime部分。
     */
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);

        LocalDateTime of = LocalDateTime.of(2202, 11, 11, 11, 11);
        System.out.println(of);

        System.out.println(now.getYear());
        System.out.println(now.getMonth());//获取英文月份
        System.out.println(now.getMonthValue());//获取数字月份
//
//        System.out.println(now.getDayOfMonth());//本月第几天
//        System.out.println(now.getDayOfWeek());//本周第几天
//        System.out.println(now.getDayOfYear());//本年的第几天
//
//        System.out.println(now.getHour());//当前小时
//        System.out.println(now.getMinute());//当前分钟
//        System.out.println(now.getSecond());//获取当前秒

//        LocalDateTime l1 = now.minusYears(1);//当前时间减一年
//        System.out.println(l1);
//        LocalDateTime l2 = now.minusDays(-10);//当前时间+10天
//        System.out.println(l2);
//        日期的格式化
//        String format = now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"));
//        System.out.println(format);
//        解析
        LocalDateTime parse = LocalDateTime.parse("2222-12-12 22:22:22",
                DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        System.out.println(parse);
//        转换
//        LocalDate asd = now.toLocalDate();
//        System.out.println(asd);
//        LocalTime sdf = now.toLocalTime();
//        System.out.println(sdf);
//        学会一个类,这3个类都应该熟练      LocalaDateTime

//        LocalDateTime with = now.withDayOfMonth(14);//修改当前日期
//        System.out.println(with);


    }
}
